import modelo.Almacen;
import modelo.Idioma;
import persistencia.BD_operaciones;
import persistencia.Buffer;
import Crawler.Crawler;


public class Main {

	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException 
	{
		//descarga_nombres_categorias_esp();
		
		//descarga_nombres_categorias("en");
		//descarga_nombres_categorias("es");
		
		
		descarga_nombres_paginas("en");
		descarga_nombres_paginas("es");
		
		/*
		 List< String> l=new LinkedList<String>();
		l.add("pru'eba");
		l.add("prueba\\");
		l.add("prue\\ba");
		l.add("prueba'");
		l.add("prueba\\'");
		l.add("prueba'\\");

		 * */
		/*descarga_nombres_paginas_esp();
		descarga_nombres_paginas_eng();
		descarga_grafo_categorias_esp();
		descarga_grafo_categorias_eng();
		descarga_traducciones_titulos_paginas_esp();
		descarga_traducciones_titulos_paginas_eng();*/
	}
	
	
	public static void  descarga_nombres_categorias(String idioma)throws InterruptedException
	{
		Crawler crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		crawler.buffer=buffer;
		base_datos.start();
		crawler.start();
		
		/*while(!Almacen.fin_descarga_nombres_categorias_eng)
		{
			Thread.sleep(30*1000);
		}	*/
	}
	
	
	public static void  descarga_nombres_paginas(String idioma)throws InterruptedException
	{
		Crawler crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		crawler.buffer=buffer;
		base_datos.start();
		crawler.start();
		
		/*while(!Almacen.fin_descarga_nombres_categorias_eng)
		{
			Thread.sleep(30*1000);
		}	*/
	}
	
	
	
	public static void  descarga_grafo_categorias_esp(String idioma)throws InterruptedException
	{
		Thread crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		base_datos.run();
		crawler.run();
		
		while(!Almacen.fin_descarga_grafo_categorias_esp)
		{
			Thread.sleep(30*1000);
		}	
	}
	
	public static void  descarga_grafo_categorias_eng(String idioma)throws InterruptedException
	{
		Thread crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		base_datos.run();
		crawler.run();
		
		while(!Almacen.fin_descarga_grafo_categorias_eng)
		{
			Thread.sleep(30*1000);
		}	
	}
	
	public static void  descarga_traducciones_titulos_paginas_esp(String idioma)throws InterruptedException
	{
		Thread crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		base_datos.run();
		crawler.run();
		
		while(!Almacen.fin_descarga_traducciones_titulos_paginas_esp)
		{
			Thread.sleep(30*1000);
		}	
	}
	
	public static void  descarga_traducciones_titulos_paginas_eng(String idioma) throws InterruptedException
	{
		Thread crawler=new Crawler(idioma);		
		Buffer buffer=new Buffer();
		BD_operaciones base_datos=new BD_operaciones(buffer);
		buffer.setBase_datos(base_datos);
		buffer.setCrawler(crawler);
		base_datos.run();
		crawler.run();
		
		while(!Almacen.fin_descarga_traducciones_titulos_paginas_eng)
		{
			Thread.sleep(30*1000);
		}	
	}

}
